<!DOCTYPE html>
<!-- saved from url=(0127)https://docs.google.com/document/d/e/2PACX-1vQ6a9X-_Ps-JSshPNyr2lP5BQaSEsQH-nZv_V4JreTOjFacHEo-8dtcZ6uxnKuR4sFPdGMGj4Ltk3nu/pub -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>WebPerfWG call - March 12th 2020</title><link rel="shortcut icon" href="https://ssl.gstatic.com/docs/documents/images/kix-favicon7.ico"><meta name="referrer" content="strict-origin-when-cross-origin"><style type="text/css" nonce="">
      @import url("https://fonts.googleapis.com/css?family=Google+Sans");
      @import url("https://fonts.googleapis.com/css?family=Roboto");

      body {
        font-family: Roboto, arial, sans, sans-serif;
        margin: 0;
      }

      iframe {
        border: 0;
        frameborder: 0;
        height: 100%;
        width: 100%;
      }

      #header {
        align-items: center;
        background: white;
        border-bottom: 1px #ccc solid;
        display: flex;
        height: 60px;
        justify-content: space-between;
        position: fixed;
        top: 0;
        width: 100%;
        z-index: 100;
      }

      #header #title {
        font-family: 'Google Sans';
        font-size: large;
        margin: auto 0 auto 20px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        width: 70%;
      }

      #header #interval {
        margin: auto 25px auto 0;
        font-family: Roboto;
        font-size: small;;
      }

      #footer {
        background: #f0f0f0;
        border-bottom: 1px #ccc solid;
        bottom: 0;
        font-family: Roboto;
        font-size: small;
        padding: 10px 10px;
        position: fixed;
        text-align: center;
        width: 100%;
      }

      #contents {
        padding: 100px 20% 50px 20%;
      }

      @media only screen and (max-device-width: 800px) {
        #header {
          border-bottom-width: 5px;
          height: auto;
          display: block;
        }

        #header #title {
          font-size: 3em;
          margin: auto 0 auto 20px;
          width: 90%;
        }

        #header #interval {
          font-size: 1.5em;
          margin: 10px 0 auto 25px;
        }

        #contents {
          padding: 150px 5% 80px;
        }

        #footer {
          font-size: 2em;
        }
      }

      .dash {
        padding: 0 6px;
      }
    </style></head><body><div id="header"><div id="title">WebPerfWG call - March 12th 2020</div><div id="interval"><span></span></div></div><div id="contents"><style type="text/css">.lst-kix_lyjwj0y3u3g3-7>li:before{content:"\0025cb  "}.lst-kix_lyjwj0y3u3g3-8>li:before{content:"\0025a0  "}.lst-kix_lyjwj0y3u3g3-3>li:before{content:"\0025cf  "}.lst-kix_lyjwj0y3u3g3-5>li:before{content:"\0025a0  "}.lst-kix_k9o2r68jd3o3-0>li:before{content:"\0025cf  "}.lst-kix_lyjwj0y3u3g3-2>li:before{content:"\0025a0  "}.lst-kix_lyjwj0y3u3g3-6>li:before{content:"\0025cf  "}ul.lst-kix_j8lah4hpidi5-2{list-style-type:none}ul.lst-kix_cv2eo9l8ki4y-8{list-style-type:none}ul.lst-kix_j8lah4hpidi5-1{list-style-type:none}ul.lst-kix_cv2eo9l8ki4y-7{list-style-type:none}ul.lst-kix_j8lah4hpidi5-0{list-style-type:none}ul.lst-kix_cv2eo9l8ki4y-6{list-style-type:none}ul.lst-kix_cv2eo9l8ki4y-5{list-style-type:none}ul.lst-kix_cv2eo9l8ki4y-4{list-style-type:none}ul.lst-kix_cv2eo9l8ki4y-3{list-style-type:none}ul.lst-kix_cv2eo9l8ki4y-2{list-style-type:none}.lst-kix_lyjwj0y3u3g3-4>li:before{content:"\0025cb  "}ul.lst-kix_cv2eo9l8ki4y-1{list-style-type:none}ul.lst-kix_cv2eo9l8ki4y-0{list-style-type:none}.lst-kix_lyjwj0y3u3g3-1>li:before{content:"\0025cb  "}.lst-kix_lyjwj0y3u3g3-0>li:before{content:"\0025cf  "}.lst-kix_681tobja9o3-7>li:before{content:"\0025cb  "}.lst-kix_681tobja9o3-6>li:before{content:"\0025cf  "}.lst-kix_681tobja9o3-5>li:before{content:"\0025a0  "}.lst-kix_681tobja9o3-3>li:before{content:"\0025cf  "}.lst-kix_681tobja9o3-4>li:before{content:"\0025cb  "}.lst-kix_xqth7n70ulm4-8>li:before{content:"\0025a0  "}.lst-kix_681tobja9o3-0>li:before{content:"\0025cf  "}.lst-kix_xqth7n70ulm4-4>li:before{content:"\0025cb  "}.lst-kix_681tobja9o3-1>li:before{content:"\0025cb  "}.lst-kix_681tobja9o3-2>li:before{content:"\0025a0  "}.lst-kix_xqth7n70ulm4-3>li:before{content:"\0025cf  "}ul.lst-kix_4hndqte4kyam-3{list-style-type:none}ul.lst-kix_4hndqte4kyam-4{list-style-type:none}.lst-kix_j8lah4hpidi5-0>li:before{content:"\0025cf  "}ul.lst-kix_4hndqte4kyam-5{list-style-type:none}ul.lst-kix_k9o2r68jd3o3-7{list-style-type:none}ul.lst-kix_4hndqte4kyam-6{list-style-type:none}ul.lst-kix_k9o2r68jd3o3-8{list-style-type:none}ul.lst-kix_4hndqte4kyam-7{list-style-type:none}ul.lst-kix_4hndqte4kyam-8{list-style-type:none}.lst-kix_xqth7n70ulm4-5>li:before{content:"\0025a0  "}.lst-kix_xqth7n70ulm4-6>li:before{content:"\0025cf  "}ul.lst-kix_4hndqte4kyam-0{list-style-type:none}ul.lst-kix_4hndqte4kyam-1{list-style-type:none}.lst-kix_xqth7n70ulm4-7>li:before{content:"\0025cb  "}ul.lst-kix_4hndqte4kyam-2{list-style-type:none}ul.lst-kix_lyjwj0y3u3g3-8{list-style-type:none}.lst-kix_k9o2r68jd3o3-6>li:before{content:"\0025cf  "}ul.lst-kix_681tobja9o3-2{list-style-type:none}.lst-kix_cv2eo9l8ki4y-8>li:before{content:"\0025a0  "}ul.lst-kix_lyjwj0y3u3g3-7{list-style-type:none}.lst-kix_j8lah4hpidi5-7>li:before{content:"\0025cb  "}.lst-kix_j8lah4hpidi5-8>li:before{content:"\0025a0  "}ul.lst-kix_681tobja9o3-1{list-style-type:none}ul.lst-kix_lyjwj0y3u3g3-6{list-style-type:none}.lst-kix_k9o2r68jd3o3-5>li:before{content:"\0025a0  "}.lst-kix_k9o2r68jd3o3-7>li:before{content:"\0025cb  "}ul.lst-kix_681tobja9o3-0{list-style-type:none}ul.lst-kix_lyjwj0y3u3g3-5{list-style-type:none}.lst-kix_k9o2r68jd3o3-4>li:before{content:"\0025cb  "}.lst-kix_k9o2r68jd3o3-8>li:before{content:"\0025a0  "}.lst-kix_cv2eo9l8ki4y-6>li:before{content:"\0025cf  "}.lst-kix_cv2eo9l8ki4y-7>li:before{content:"\0025cb  "}.lst-kix_j8lah4hpidi5-6>li:before{content:"\0025cf  "}ul.lst-kix_lyjwj0y3u3g3-0{list-style-type:none}ul.lst-kix_k9o2r68jd3o3-1{list-style-type:none}.lst-kix_k9o2r68jd3o3-2>li:before{content:"\0025a0  "}ul.lst-kix_k9o2r68jd3o3-2{list-style-type:none}.lst-kix_k9o2r68jd3o3-1>li:before{content:"\0025cb  "}.lst-kix_k9o2r68jd3o3-3>li:before{content:"\0025cf  "}ul.lst-kix_681tobja9o3-8{list-style-type:none}ul.lst-kix_k9o2r68jd3o3-0{list-style-type:none}ul.lst-kix_681tobja9o3-7{list-style-type:none}ul.lst-kix_lyjwj0y3u3g3-4{list-style-type:none}ul.lst-kix_k9o2r68jd3o3-5{list-style-type:none}ul.lst-kix_681tobja9o3-6{list-style-type:none}ul.lst-kix_lyjwj0y3u3g3-3{list-style-type:none}.lst-kix_j8lah4hpidi5-1>li:before{content:"\0025cb  "}ul.lst-kix_k9o2r68jd3o3-6{list-style-type:none}ul.lst-kix_681tobja9o3-5{list-style-type:none}ul.lst-kix_lyjwj0y3u3g3-2{list-style-type:none}ul.lst-kix_k9o2r68jd3o3-3{list-style-type:none}ul.lst-kix_681tobja9o3-4{list-style-type:none}ul.lst-kix_lyjwj0y3u3g3-1{list-style-type:none}ul.lst-kix_k9o2r68jd3o3-4{list-style-type:none}ul.lst-kix_681tobja9o3-3{list-style-type:none}.lst-kix_cv2eo9l8ki4y-1>li:before{content:"\0025cb  "}.lst-kix_cv2eo9l8ki4y-2>li:before{content:"\0025a0  "}.lst-kix_cv2eo9l8ki4y-3>li:before{content:"\0025cf  "}.lst-kix_j8lah4hpidi5-2>li:before{content:"\0025a0  "}.lst-kix_cv2eo9l8ki4y-5>li:before{content:"\0025a0  "}.lst-kix_j8lah4hpidi5-3>li:before{content:"\0025cf  "}.lst-kix_j8lah4hpidi5-4>li:before{content:"\0025cb  "}.lst-kix_cv2eo9l8ki4y-4>li:before{content:"\0025cb  "}.lst-kix_j8lah4hpidi5-5>li:before{content:"\0025a0  "}ul.lst-kix_xqth7n70ulm4-0{list-style-type:none}ul.lst-kix_xqth7n70ulm4-1{list-style-type:none}ul.lst-kix_xqth7n70ulm4-4{list-style-type:none}ul.lst-kix_xqth7n70ulm4-5{list-style-type:none}ul.lst-kix_xqth7n70ulm4-2{list-style-type:none}ul.lst-kix_xqth7n70ulm4-3{list-style-type:none}.lst-kix_4hndqte4kyam-0>li:before{content:"\0025cf  "}.lst-kix_cv2eo9l8ki4y-0>li:before{content:"\0025cf  "}.lst-kix_4hndqte4kyam-4>li:before{content:"\0025cb  "}.lst-kix_4hndqte4kyam-6>li:before{content:"\0025cf  "}.lst-kix_4hndqte4kyam-1>li:before{content:"\0025cb  "}.lst-kix_4hndqte4kyam-5>li:before{content:"\0025a0  "}.lst-kix_4hndqte4kyam-2>li:before{content:"\0025a0  "}.lst-kix_4hndqte4kyam-3>li:before{content:"\0025cf  "}.lst-kix_4hndqte4kyam-8>li:before{content:"\0025a0  "}.lst-kix_4hndqte4kyam-7>li:before{content:"\0025cb  "}.lst-kix_xqth7n70ulm4-0>li:before{content:"\0025cf  "}.lst-kix_xqth7n70ulm4-2>li:before{content:"\0025a0  "}.lst-kix_xqth7n70ulm4-1>li:before{content:"\0025cb  "}.lst-kix_kmmlwqkkr8ky-7>li:before{content:"\0025cb  "}.lst-kix_kmmlwqkkr8ky-6>li:before{content:"\0025cf  "}ul.lst-kix_kmmlwqkkr8ky-7{list-style-type:none}ul.lst-kix_kmmlwqkkr8ky-6{list-style-type:none}.lst-kix_681tobja9o3-8>li:before{content:"\0025a0  "}ul.lst-kix_kmmlwqkkr8ky-8{list-style-type:none}ul.lst-kix_kmmlwqkkr8ky-3{list-style-type:none}ul.lst-kix_kmmlwqkkr8ky-2{list-style-type:none}ul.lst-kix_kmmlwqkkr8ky-5{list-style-type:none}.lst-kix_kmmlwqkkr8ky-0>li:before{content:"\0025cf  "}ul.lst-kix_kmmlwqkkr8ky-4{list-style-type:none}.lst-kix_kmmlwqkkr8ky-8>li:before{content:"\0025a0  "}ul.lst-kix_kmmlwqkkr8ky-1{list-style-type:none}ul.lst-kix_kmmlwqkkr8ky-0{list-style-type:none}ul.lst-kix_j8lah4hpidi5-8{list-style-type:none}ul.lst-kix_j8lah4hpidi5-7{list-style-type:none}ul.lst-kix_j8lah4hpidi5-6{list-style-type:none}ul.lst-kix_j8lah4hpidi5-5{list-style-type:none}ul.lst-kix_j8lah4hpidi5-4{list-style-type:none}ul.lst-kix_j8lah4hpidi5-3{list-style-type:none}li.li-bullet-0:before{margin-left:-18pt;white-space:nowrap;display:inline-block;min-width:18pt}.lst-kix_kmmlwqkkr8ky-1>li:before{content:"\0025cb  "}.lst-kix_kmmlwqkkr8ky-2>li:before{content:"\0025a0  "}ul.lst-kix_xqth7n70ulm4-8{list-style-type:none}ul.lst-kix_xqth7n70ulm4-6{list-style-type:none}.lst-kix_kmmlwqkkr8ky-3>li:before{content:"\0025cf  "}.lst-kix_kmmlwqkkr8ky-5>li:before{content:"\0025a0  "}ul.lst-kix_xqth7n70ulm4-7{list-style-type:none}.lst-kix_kmmlwqkkr8ky-4>li:before{content:"\0025cb  "}ol{margin:0;padding:0}table td,table th{padding:0}.c15{-webkit-text-decoration-skip:none;color:#000000;font-weight:400;text-decoration:line-through;vertical-align:baseline;text-decoration-skip-ink:none;font-size:11pt;font-family:"Arial";font-style:normal}.c11{padding-top:18pt;padding-bottom:6pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c8{color:#434343;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:14pt;font-family:"Arial";font-style:normal}.c6{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:16pt;font-family:"Arial";font-style:normal}.c10{padding-top:16pt;padding-bottom:4pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c1{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Arial";font-style:normal}.c2{padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c5{text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;color:#1155cc;text-decoration:underline}.c14{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}.c9{color:inherit;text-decoration:inherit}.c13{margin-left:72pt;padding-left:0pt}.c4{margin-left:36pt;padding-left:0pt}.c12{padding:0;margin:0}.c0{font-weight:700}.c7{height:11pt}.c3{font-style:italic}.title{padding-top:0pt;color:#000000;font-size:26pt;padding-bottom:3pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.subtitle{padding-top:0pt;color:#666666;font-size:15pt;padding-bottom:16pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}li{color:#000000;font-size:11pt;font-family:"Arial"}p{margin:0;color:#000000;font-size:11pt;font-family:"Arial"}h1{padding-top:20pt;color:#000000;font-size:20pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h2{padding-top:18pt;color:#000000;font-size:16pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h3{padding-top:16pt;color:#434343;font-size:14pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h4{padding-top:14pt;color:#666666;font-size:12pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h5{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h6{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left}</style><div class="c14"><h2 class="c11" id="h.u0hgi4gyuvyd"><span class="c6">Participants:</span></h2><p class="c2"><span class="c1">Dave Pifke, Michal Mocny, Steven Bougon, Nic Jansma, Gilles Dubuc, Yoav Weiss, Nicol&aacute;s Pe&ntilde;a, Philippe Le Hegaret, Annie Sullivan</span></p><h2 class="c11" id="h.tur2pyk2cxxg"><span class="c6">Next Meeting</span></h2><ul class="c12 lst-kix_4hndqte4kyam-0 start"><li class="c2 c4 li-bullet-0"><span class="c1">March 26 at 10am PST</span></li></ul><ul class="c12 lst-kix_4hndqte4kyam-1 start"><li class="c2 c13 li-bullet-0"><span class="c15">Yoav to fix calendar appointment which currently has it listed at 11am PST due to the difference between DST in Americas and Europe (Mar 8 vs. Mar 29)</span></li></ul><h2 class="c11" id="h.m1r7i0biaw2v"><span class="c6">Event Timing Updates from Nicol&aacute;s Pe&ntilde;a</span></h2><p class="c2"><span class="c5"><a class="c9" href="https://www.google.com/url?q=https://docs.google.com/presentation/d/1VFYkDaC59dn7cI-BHoCEYv6ZkSEmA33riZRee93KV8Y/edit%23slide%3Did.p&amp;sa=D&amp;source=editors&amp;ust=1613234797382000&amp;usg=AOvVaw1kEmwqxwKqaK5Jmi9HCv70">Presentation</a></span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: 2 API objectives:</span></p><ul class="c12 lst-kix_cv2eo9l8ki4y-0 start"><li class="c2 c4 li-bullet-0"><span class="c1">Want to gather data on input delays (time to start processing)</span></li><li class="c2 c4 li-bullet-0"><span class="c1">Gathering data on sync input processing latency (how long it takes until next paint after event handlers have run)</span></li></ul><p class="c2"><span class="c1">… Non-objectives include:</span></p><ul class="c12 lst-kix_lyjwj0y3u3g3-0 start"><li class="c2 c4 li-bullet-0"><span class="c1">measuring async work coming from event handler as that’s better done in User Timing </span></li><li class="c2 c4 li-bullet-0"><span class="c1">measuring 'continuous' events - hardware dependencies and browser differences on when they are dispatched, so don’t want to expose them</span></li><li class="c2 c4 li-bullet-0"><span class="c1">scroll performance - scrolls can be caused by a scrollbar so may be unrelated to input events. Scrolls are hard so should be decoupled.</span></li></ul><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: With regard to async performance, we discussed measuring how long the paint took afterwards, right?</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Guidance is to use UserTiming for measuring your async work, since your JS will already be running in the event handler. That was the conclusion in previous discussions. Also, it’s hard for the UA to keep track of causality of async work.</span></p><p class="c2"><span class="c1">… *continues presenting*</span></p><p class="c2"><span class="c1">… First Input - always exposed: From key down, mouse down, pointer down + pointer up, click</span></p><p class="c2"><span class="c1">… Also expose "general input delay" from a list of non-continuous events whose duration is &gt; 100ms (104ms rounded)</span></p><p class="c2"><span class="c0">Steven</span><span class="c1"><b></b>: If one of those events takes less than 104ms, we won't be notified?</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Correct</span></p><p class="c2"><span class="c0">Steven</span><span class="c1"><b></b>: For the gaming industry, would they want to have a lower threshold?</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: It's feasible we could let the threshold be variable pending security + privacy review. &nbsp;<b>Only challenge is we support the buffered</b>: flag, which means we'd have to store the lowest possible threshold. Also don’t want to make the threshold too low as that would be spammy</span></p><p class="c2"><span class="c0">Steven</span><span class="c1"><b></b>: Makes sense as a default, but might be good to have an option</span></p><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: For the buffered case where you care about faster clicks, you've probably already setup the app and have registered your observers, so the buffered could just deliver the default threshold, and we’d deliver values with lower thresholds only when explicitly required</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Possible, but might be confusing to developers.</span></p><p class="c2"><span class="c0">Dave</span><span class="c1"><b></b>: For those that want to only track a higher threshold, it would be easier since the buffer could just deliver those under the threshold</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Yeah, we can add a parameter</span></p><p class="c2"><span class="c1">… *continues presenting*</span></p><p class="c2"><span class="c1">… What's exposed</span></p><ul class="c12 lst-kix_j8lah4hpidi5-0 start"><li class="c2 c4 li-bullet-0"><span class="c1">First Input (always)</span></li><li class="c2 c4 li-bullet-0"><span class="c1">'Slow' inputs when the rounded duration exceeds 104ms threshold</span></li><li class="c2 c4 li-bullet-0"><span class="c1">Should we add an eventTypes option? Probably yes, so developers can observe a subset of events they care about</span></li></ul><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: Is there an easy way to detect which types are supported for observation?</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Will make sure we have something available</span></p><ul class="c12 lst-kix_j8lah4hpidi5-0"><li class="c2 c4 li-bullet-0"><span class="c1"><b>For supported event types want to expose</b>: total count, to help calculate overall percentage of slow inputs, etc.</span></li></ul><p class="c2"><span class="c1">… Chromium shipping First Input Timing</span></p><p class="c2"><span class="c1">… Chrome intends to ship Event Counts as well as full Event Timing in near future</span></p><p class="c2"><span class="c1">… [goes over PerformanceEventTiming interface in slide deck]</span></p><p class="c2"><span style="overflow: hidden;<b> display</b>: inline-block;<b> margin</b>: 0.00px 0.00px;<b> border</b>: 0.00px solid #000000;<b> transform</b>: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px);<b> width</b>: 624.00px;<b> height</b>: 348.00px;"><img alt="" src="./index_files/Screenshot 2020-03-19 at 14.57.51.png" style="width: 624.00px;<b> height</b>: 348.00px; margin-left: 0.00px; margin-top: 0.00px;<b> transform</b>: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px);" title=""></span></p><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: `name` is the event type rather than URL like other performance entries, right?</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Yeah.</span></p><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: `cancelable` is a way to track passive events vs not, right? That enables distinguishing events that have to run sync vs. not. Seems like something we want to make people aware of. Mostly relevant for scroll events, so maybe not so relevant. Worthwhile to think about developer advice here.</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Makes sense</span></p><p class="c2"><span class="c1">... EventCounts interface will give you the number of events that have been dispatched, per type</span></p><p class="c2"><span style="overflow: hidden;<b> display</b>: inline-block;<b> margin</b>: 0.00px 0.00px;<b> border</b>: 0.00px solid #000000;<b> transform</b>: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px);<b> width</b>: 624.00px;<b> height</b>: 349.33px;"><img alt="" src="./index_files/Screenshot 2020-03-19 at 14.58.04.png" style="width: 624.00px;<b> height</b>: 349.33px; margin-left: 0.00px; margin-top: 0.00px;<b> transform</b>: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px);" title=""></span></p><p class="c2"><span class="c1">... For events that are not supported by the UA, they could be optional. That would enable feature detection</span></p><p class="c2"><span class="c0">Philippe</span><span class="c1"><b></b>: Why not a map object?</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Not sure why. I’ll look into it</span></p><p class="c2"><span class="c0">Steven</span><span class="c1"><b></b>: Other groups looking into user behaviors may be interested in a number of clicks. Wondering if we can expose that?</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Event counts would give you the total number of events</span></p><p class="c2"><span class="c0">Nic</span><span class="c1"><b></b>: Event Counts mentioned that the counts would be updated asynchronously, I would just want to make sure the counts are relatively in-sync with when the PerformanceObserver is dispatched, so the EventTiming entry is reflected in the EventCounts by then</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Some UAs may filter unhandled events outside of the renderer process, so the count would have to be asynchronous. But there should be some guidance that if the performance entry is dispatched, the count also includes it. Makes sense and sounds feasible.</span></p><p class="c2 c7"><span class="c1"></span></p><p class="c2 c7"><span class="c1"></span></p><h2 class="c11" id="h.6qonhyqaq3sa"><span class="c6">Issue Triage - NavigationTiming</span></h2><h3 class="c10" id="h.yxb4tq3wz2vw"><span class="c5"><a class="c9" href="https://www.google.com/url?q=https://github.com/w3c/navigation-timing/issues/117&amp;sa=D&amp;source=editors&amp;ust=1613234797387000&amp;usg=AOvVaw2dmnV5DweRbdMsV9NhSCQH">Better integration with ResourceTiming</a></span></h3><p class="c2"><span class="c0">Nicol&aacute;s</span><span><b></b>: Spec language is confusing, as the NT spec (which uses </span><span class="c3">same-origin </span><span>for exposing some times like DNS) links to the RT spec (which uses </span><span class="c3">TAO </span><span class="c1">for the same times), plus additional spec confusion</span></p><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: Mark as blocking for L2. Will go away in L3</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Need to make sure that the checks make sense</span></p><p class="c2"><span class="c0">Nic</span><span class="c1"><b></b>: In navigation timing, those entries are always exposed right?</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Can have cross origin redirects for the navigation</span></p><p class="c2"><span class="c0">Nic</span><span class="c1"><b></b>: Yeah, but it’s always exposing the last entry</span></p><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: So for NavTiming, TAO on its own origin always passes.</span></p><p class="c2"><span class="c1">… But seems reasonable to make sure someone goes over that and verifies that the behavior is what we want it to be</span></p><h3 class="c10" id="h.esv34kq8g01l"><span class="c5"><a class="c9" href="https://www.google.com/url?q=https://github.com/w3c/navigation-timing/issues/116&amp;sa=D&amp;source=editors&amp;ust=1613234797388000&amp;usg=AOvVaw1z5fN-31EcysQ__Oku0SyN">Can hitting enter on address bar to same URL be considered a navigation of type 'reload'?</a></span></h3><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: WebKit folks had a few examples where it’s not a reload, e.g. when navigation was made with a POST</span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Need to define reloads in terms of what the UA is doing, not user actions. So this is blocked on HTML</span></p><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: Agree. We can mark spec as blocking, pointing to "reload triggered navigation", and open a HTML issue on better defining what that means.</span></p><h3 class="c10" id="h.vt9j12flbk8"><span class="c5"><a class="c9" href="https://www.google.com/url?q=https://github.com/w3c/navigation-timing/issues/123&amp;sa=D&amp;source=editors&amp;ust=1613234797389000&amp;usg=AOvVaw2_2BKIr51lnzBS2LkFoaHi">Surface chunk network timing details</a></span></h3><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: Useful addition, but seems like a feature request for Level 3</span></p><p class="c2"><span class="c0">Nic</span><span class="c1"><b></b>: RUM customers haven't requested this yet, but could be useful</span></p><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: This type of data is now being surfaced in WPT and used to expose bad server behavior</span></p><p class="c2"><span class="c0">Nic</span><span class="c1"><b></b>: More visibility would be useful.</span></p><h3 class="c10" id="h.m30mc221giat"><span class="c5"><a class="c9" href="https://www.google.com/url?q=https://github.com/w3c/navigation-timing/issues/124&amp;sa=D&amp;source=editors&amp;ust=1613234797390000&amp;usg=AOvVaw0fUoSqhcR1PLjGGSlRP1nv">What should transferSize, encodedBodySize and decodedBodySize in Navigation + Resource Timing represent for responses where a Service Worker is involved?</a></span></h3><p class="c2"><span class="c1">Current implementation on latest builds of a number of popular browsers (Chrome, Chromium, Firefox, Edge, Samsung Internet) seem to allude to this fact by simply reporting a "0" for all these parameters when a Service Worker is involved in between</span></p><p class="c2 c7"><span class="c1"></span></p><p class="c2"><span class="c0">Nicol&aacute;s</span><span class="c1"><b></b>: Do we have a sense of what those properties be with a SW? Or should we talk about it with SW folks?</span></p><p class="c2"><span class="c0">Yoav</span><span class="c1"><b></b>: Would be useful to talk about it in terms of SW use cases</span></p><p class="c2"><span class="c1">.... From a security perspective, can a SW add TAO to a cross-origin response? Can’t do that as it’s an opaque response. So that’s probably fine.</span></p><p class="c2"><span class="c0">Yoav</span><span><b></b>: Marked as Level 2 blocking because it seems like we need to answer that question</span></p></div></div><div id="footer"><span>Published by <a target="_blank" title="Learn more about Google Drive" href="https://docs.google.com/">Google Drive</a></span><span class="dash">–</span><a href="https://docs.google.com/u/0/abuse?id=AKkXjowBfMhC1QX5h8tYMffKasR_at4zBw6mkcYijdTTwi6CsF3xOpztYsaGqIb-9r8tcoM8MfER2Y-31L0MX_4:0">Report Abuse</a></div><script type="text/javascript" nonce="">(function(){/*

 Copyright The Closure Library Authors.
 SPDX-License-Identifier: Apache-2.0
*/
var aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};function ba(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var ca=ba(this);
function da(a,b){if(b)a:{var c=ca;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}}var ea="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},fa;
if("function"==typeof Object.setPrototypeOf)fa=Object.setPrototypeOf;else{var ha;a:{var ia={a:!0},ja={};try{ja.__proto__=ia;ha=ja.a;break a}catch(a){}ha=!1}fa=ha?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ka=fa;
function h(a,b){a.prototype=ea(b.prototype);a.prototype.constructor=a;if(ka)ka(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.o=b.prototype}da("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}});var l=this||self;function la(){}function ma(a){var b=typeof a;return"object"==b&&null!=a||"function"==b}
function na(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}}function oa(a,b){function c(){}c.prototype=b.prototype;a.o=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.B=function(d,e,f){for(var g=Array(arguments.length-2),k=2;k<arguments.length;k++)g[k-2]=arguments[k];return b.prototype[e].apply(d,g)}}function pa(a){return a};var qa=Array.prototype.indexOf?function(a,b){return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if("string"===typeof a)return"string"!==typeof b||1!=b.length?-1:a.indexOf(b,0);for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};function ra(a,b,c){for(var d in a)b.call(c,a[d],d,a)};var m;function p(a,b){this.i=a===sa&&b||"";this.j=ta}p.prototype.h=!0;p.prototype.g=function(){return this.i};var ta={},sa={};var ua=String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]},va=/&/g,wa=/</g,xa=/>/g,ya=/"/g,za=/'/g,Aa=/\x00/g,Ba=/[\x00&<>"']/;function Ca(a,b){return a<b?-1:a>b?1:0};function q(a,b){this.i=b===r?a:""}q.prototype.h=!0;q.prototype.g=function(){return this.i.toString()};q.prototype.toString=function(){return this.i.toString()};function u(a){return a instanceof q&&a.constructor===q?a.i:"type_error:SafeUrl"}
var Da=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|font\/\w+|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i,Ea=/^data:(.*);base64,[a-z0-9+\/]+=*$/i,Fa=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;function Ga(a){if(a instanceof q)return a;a="object"==typeof a&&a.h?a.g():String(a);Fa.test(a)||(a="about:invalid#zClosurez");return new q(a,r)}
var r={},Ha=new q("about:invalid#zClosurez",r);var v;a:{var Ia=l.navigator;if(Ia){var Ja=Ia.userAgent;if(Ja){v=Ja;break a}}v=""}function w(a){return-1!=v.indexOf(a)};function x(a,b,c){this.i=c===Ka?a:""}x.prototype.h=!0;x.prototype.g=function(){return this.i.toString()};x.prototype.toString=function(){return this.i.toString()};var Ka={};function La(a,b,c,d){a=a instanceof q?a:Ga(a);b=b||l;c=c instanceof p?c instanceof p&&c.constructor===p&&c.j===ta?c.i:"type_error:Const":c||"";return void 0!==d?b.open(u(a),c,d,void 0):b.open(u(a),c)};function Ma(a){Ma[" "](a);return a}Ma[" "]=la;function y(a,b,c){return Object.prototype.hasOwnProperty.call(a,b)?a[b]:a[b]=c(b)};var Na=w("Opera"),z=w("Trident")||w("MSIE"),Oa=w("Edge"),Pa=Oa||z,Qa=w("Gecko")&&!(-1!=v.toLowerCase().indexOf("webkit")&&!w("Edge"))&&!(w("Trident")||w("MSIE"))&&!w("Edge"),Ra=-1!=v.toLowerCase().indexOf("webkit")&&!w("Edge"),Sa=w("Macintosh");function Ta(){var a=l.document;return a?a.documentMode:void 0}var Ua;
a:{var Va="",Wa=function(){var a=v;if(Qa)return/rv:([^\);]+)(\)|;)/.exec(a);if(Oa)return/Edge\/([\d\.]+)/.exec(a);if(z)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(Ra)return/WebKit\/(\S+)/.exec(a);if(Na)return/(?:Version)[ \/]?(\S+)/.exec(a)}();Wa&&(Va=Wa?Wa[1]:"");if(z){var Xa=Ta();if(null!=Xa&&Xa>parseFloat(Va)){Ua=String(Xa);break a}}Ua=Va}var Ya=Ua,Za={},$a;if(l.document&&z){var ab=Ta();$a=ab?ab:parseInt(Ya,10)||void 0}else $a=void 0;var bb=$a;function cb(a){return y(a.prototype,"$$generatedClassName",function(){return"Class$obf_"+{valueOf:function(){return++db}}})}var db=1E3;function A(){}A.prototype.u=function(){return this.j||(Object.defineProperties(this,{j:{value:++eb,enumerable:!1}}),this.j)};A.prototype.toString=function(){var a=B(fb(gb(this.constructor)))+"@";var b=(this.u()>>>0).toString(16);return a+B(b)};function D(){}h(D,A);D.prototype.i=function(a){this.h=a;if(a instanceof Object)try{a.A=this}catch(b){}};function hb(a){a.h instanceof Error&&(Error.captureStackTrace?Error.captureStackTrace(a.h):a.h.stack=Error().stack)}D.prototype.toString=function(){var a=fb(gb(this.constructor)),b=this.l;return null==b?a:B(a)+": "+B(b)};function ib(){}h(ib,D);function jb(){}h(jb,ib);var eb=0;function E(){}h(E,jb);E.prototype.i=function(a){jb.prototype.i.call(this,Object.is(this.g,"__noinit__")?a:this.g)};function kb(){}h(kb,E);function lb(a,b){return"string"==typeof a?a.charCodeAt(b):a.g(b)};function B(a){return null==a?"null":a.toString()}function mb(a){return 65536<=a?B(String.fromCharCode((55296+((a-65536|0)>>10&1023)|0)&65535))+B(String.fromCharCode((56320+((a-65536|0)&1023)|0)&65535)):String.fromCharCode(a&65535)}function nb(a,b){var c=b,d=a.length,e;b=lb(a,(e=c,c=c+1|0,e));var f;if(e=55296<=b&&56319>=b&&c<d)a=f=lb(a,c),e=56320<=a&&57343>=a;var g;e?g=65536+((b&1023)<<10)+(f&1023)|0:g=b;return g};function ob(a,b){this.h=a;this.g=b}h(ob,A);function fb(a){var b=cb(a.h);0!=a.g&&(b="L"+B(b)+";");a=a.g;for(var c="",d=0;d<a;d=d+1|0)c=B(c)+"[";return B(c)+B(b)}ob.prototype.toString=function(){return"class "+B(fb(this))};function gb(a){var b=0;return y(a.prototype,"$$class/"+b,function(){return new ob(a,b)})};function pb(a,b){return null==a?a:b?decodeURI(a):decodeURIComponent(a)};var qb=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\S\s]*))?$/;function rb(a){a=qb.exec(a);for(var b=[],c=0;7>=c;c=c+1|0)a.length<=c||null==a[c]?b.push(null):b.push(a[c]);return b}
function sb(a,b){var c=a.indexOf(mb(35));c=0>c?a.length:c;a:{var d=0;for(var e=b.length;0<(d=a.indexOf(b,d))&&d<c;){var f=nb(a,d-1|0);if(38==f||63==f){if((d+e|0)>=a.length)break a;f=nb(a,d+e|0);if(61==f||38==f||35==f)break a}d=d+(e+1)|0}d=-1}if(0>d)return null;e=a.indexOf(mb(38),d);if(0>e||e>c)e=c;d=d+(b.length+1)|0;b=Math.min(a.length,d);a=a.substr(b,Math.min(a.length,Math.max(d,e))-b|0);c=" ";for(b=0;0<=(b=c.indexOf("\\",b));)36==c.charCodeAt(b+1|0)?(d=B(c.substr(0,b|0))+"$",e=b=b+1|0,c=d+B(c.substr(e))):
(d=B(c.substr(0,b|0)),e=b=b+1|0,c=d+B(c.substr(e)));a=a.replace(/\+/g,c);return pb(a,!1)};function F(a,b){this.h=b;for(var c=[],d=!0,e=a.length-1;0<=e;e--){var f=a[e]|0;d&&f==b||(c[e]=f,d=!1)}this.g=c}var tb={};function ub(a){return-128<=a&&128>a?y(tb,a,function(b){return new F([b|0],0>b?-1:0)}):new F([a|0],0>a?-1:0)}function G(a){if(isNaN(a)||!isFinite(a))return H;if(0>a)return I(G(-a));for(var b=[],c=1,d=0;a>=c;d++)b[d]=a/c|0,c*=4294967296;return new F(b,0)}var H=ub(0),J=ub(1),vb=ub(16777216);
function K(a){if(-1==a.h)return-K(I(a));for(var b=0,c=1,d=0;d<a.g.length;d++){var e=L(a,d);b+=(0<=e?e:4294967296+e)*c;c*=4294967296}return b}F.prototype.toString=function(a){a=a||10;if(2>a||36<a)throw Error("radix out of range: "+a);if(M(this))return"0";if(-1==this.h)return"-"+I(this).toString(a);for(var b=G(Math.pow(a,6)),c=this,d="";;){var e=wb(c,b).g;c=N(c,O(e,b));var f=((0<c.g.length?c.g[0]:c.h)>>>0).toString(a);c=e;if(M(c))return f+d;for(;6>f.length;)f="0"+f;d=f+d}};
function L(a,b){return 0>b?0:b<a.g.length?a.g[b]:a.h}function M(a){if(0!=a.h)return!1;for(var b=0;b<a.g.length;b++)if(0!=a.g[b])return!1;return!0}function P(a,b){a=N(a,b);return-1==a.h?-1:M(a)?0:1}function I(a){for(var b=a.g.length,c=[],d=0;d<b;d++)c[d]=~a.g[d];return(new F(c,~a.h)).add(J)}F.prototype.abs=function(){return-1==this.h?I(this):this};
F.prototype.add=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0,e=0;e<=b;e++){var f=d+(L(this,e)&65535)+(L(a,e)&65535),g=(f>>>16)+(L(this,e)>>>16)+(L(a,e)>>>16);d=g>>>16;f&=65535;g&=65535;c[e]=g<<16|f}return new F(c,c[c.length-1]&-2147483648?-1:0)};function N(a,b){return a.add(I(b))}
function O(a,b){if(M(a)||M(b))return H;if(-1==a.h)return-1==b.h?O(I(a),I(b)):I(O(I(a),b));if(-1==b.h)return I(O(a,I(b)));if(0>P(a,vb)&&0>P(b,vb))return G(K(a)*K(b));for(var c=a.g.length+b.g.length,d=[],e=0;e<2*c;e++)d[e]=0;for(e=0;e<a.g.length;e++)for(var f=0;f<b.g.length;f++){var g=L(a,e)>>>16,k=L(a,e)&65535,t=L(b,f)>>>16,n=L(b,f)&65535;d[2*e+2*f]+=k*n;Q(d,2*e+2*f);d[2*e+2*f+1]+=g*n;Q(d,2*e+2*f+1);d[2*e+2*f+1]+=k*t;Q(d,2*e+2*f+1);d[2*e+2*f+2]+=g*t;Q(d,2*e+2*f+2)}for(e=0;e<c;e++)d[e]=d[2*e+1]<<16|
d[2*e];for(e=c;e<2*c;e++)d[e]=0;return new F(d,0)}function Q(a,b){for(;(a[b]&65535)!=a[b];)a[b+1]+=a[b]>>>16,a[b]&=65535,b++}function S(a,b){this.g=a;this.h=b}
function wb(a,b){if(M(b))throw Error("division by zero");if(M(a))return new S(H,H);if(-1==a.h)return b=wb(I(a),b),new S(I(b.g),I(b.h));if(-1==b.h)return b=wb(a,I(b)),new S(I(b.g),b.h);if(30<a.g.length){if(-1==a.h||-1==b.h)throw Error("slowDivide_ only works with positive integers.");for(var c=J,d=b;0>=P(d,a);)c=xb(c,1),d=xb(d,1);var e=T(c,1),f=T(d,1);d=T(d,2);for(c=T(c,2);!M(d);){var g=f.add(d);0>=P(g,a)&&(e=e.add(c),f=g);d=T(d,1);c=T(c,1)}b=N(a,O(e,b));return new S(e,b)}for(e=H;0<=P(a,b);){c=Math.max(1,
Math.floor(K(a)/K(b)));d=Math.ceil(Math.log(c)/Math.LN2);d=48>=d?1:Math.pow(2,d-48);f=G(c);for(g=O(f,b);-1==g.h||0<P(g,a);)c-=d,f=G(c),g=O(f,b);M(f)&&(f=J);e=e.add(f);a=N(a,g)}return new S(e,a)}F.prototype.and=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)&L(a,d);return new F(c,this.h&a.h)};F.prototype.or=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)|L(a,d);return new F(c,this.h|a.h)};
F.prototype.xor=function(a){for(var b=Math.max(this.g.length,a.g.length),c=[],d=0;d<b;d++)c[d]=L(this,d)^L(a,d);return new F(c,this.h^a.h)};function xb(a,b){var c=b>>5;b%=32;for(var d=a.g.length+c+(0<b?1:0),e=[],f=0;f<d;f++)e[f]=0<b?L(a,f-c)<<b|L(a,f-c-1)>>>32-b:L(a,f-c);return new F(e,a.h)}function T(a,b){var c=b>>5;b%=32;for(var d=a.g.length-c,e=[],f=0;f<d;f++)e[f]=0<b?L(a,f+c)>>>b|L(a,f+c+1)<<32-b:L(a,f+c);return new F(e,a.h)};N(xb(J,32),J);N(xb(J,128),J);function yb(a){a&&"function"==typeof a.v&&a.v()};function U(){this.h=this.h;this.g=this.g}U.prototype.h=!1;U.prototype.v=function(){this.h||(this.h=!0,this.j())};U.prototype.j=function(){if(this.g)for(;this.g.length;)this.g.shift()()};var zb=!z||9<=Number(bb),Ab=!z||9<=Number(bb),Bb=z&&!y(Za,"9",function(){for(var a=0,b=ua(String(Ya)).split("."),c=ua("9").split("."),d=Math.max(b.length,c.length),e=0;0==a&&e<d;e++){var f=b[e]||"",g=c[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;a=Ca(0==f[1].length?0:parseInt(f[1],10),0==g[1].length?0:parseInt(g[1],10))||Ca(0==f[2].length,0==g[2].length)||Ca(f[2],g[2]);f=f[3];g=g[3]}while(0==a)}return 0<=a}),
Cb=function(){if(!l.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}});try{l.addEventListener("test",la,b),l.removeEventListener("test",la,b)}catch(c){}return a}();function Db(a,b){this.type=a;this.g=this.target=b;this.defaultPrevented=!1}Db.prototype.h=function(){this.defaultPrevented=!0};function V(a,b){Db.call(this,a?a.type:"");this.relatedTarget=this.g=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key="";this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.state=null;this.pointerId=0;this.pointerType="";this.i=null;if(a){var c=this.type=a.type,d=a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.g=b;if(b=a.relatedTarget){if(Qa){a:{try{Ma(b.nodeName);var e=!0;break a}catch(f){}e=
!1}e||(b=null)}}else"mouseover"==c?b=a.fromElement:"mouseout"==c&&(b=a.toElement);this.relatedTarget=b;d?(this.clientX=void 0!==d.clientX?d.clientX:d.pageX,this.clientY=void 0!==d.clientY?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||0):(this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0);this.button=a.button;this.key=a.key||"";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=
a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType="string"===typeof a.pointerType?a.pointerType:Eb[a.pointerType]||"";this.state=a.state;this.i=a;a.defaultPrevented&&V.o.h.call(this)}}oa(V,Db);var Fb=[1,4,2],Eb={2:"touch",3:"pen",4:"mouse"};V.prototype.h=function(){V.o.h.call(this);var a=this.i;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Bb)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};var Gb="closure_listenable_"+(1E6*Math.random()|0);var Hb=0;function Ib(a,b,c,d,e){this.listener=a;this.g=null;this.src=b;this.type=c;this.capture=!!d;this.h=e;this.key=++Hb;this.m=this.s=!1}function Jb(a){a.m=!0;a.listener=null;a.g=null;a.src=null;a.h=null};function Kb(a){this.src=a;this.g={};this.h=0}Kb.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.g[f];a||(a=this.g[f]=[],this.h++);var g;a:{for(g=0;g<a.length;++g){var k=a[g];if(!k.m&&k.listener==b&&k.capture==!!d&&k.h==e)break a}g=-1}-1<g?(b=a[g],c||(b.s=!1)):(b=new Ib(b,this.src,f,!!d,e),b.s=c,a.push(b));return b};function Lb(a,b){var c=b.type;if(c in a.g){var d=a.g[c],e=qa(d,b),f;(f=0<=e)&&Array.prototype.splice.call(d,e,1);f&&(Jb(b),0==a.g[c].length&&(delete a.g[c],a.h--))}};var Mb="closure_lm_"+(1E6*Math.random()|0),Nb={},Ob=0;function Pb(a,b,c,d,e){if(d&&d.once)return Qb(a,b,c,d,e);if(Array.isArray(b)){for(var f=0;f<b.length;f++)Pb(a,b[f],c,d,e);return null}c=Rb(c);return a&&a[Gb]?a.g.add(String(b),c,!1,ma(d)?!!d.capture:!!d,e):Sb(a,b,c,!1,d,e)}
function Sb(a,b,c,d,e,f){if(!b)throw Error("Invalid event type");var g=ma(e)?!!e.capture:!!e,k=Tb(a);k||(a[Mb]=k=new Kb(a));c=k.add(b,c,d,g,f);if(c.g)return c;d=Ub();c.g=d;d.src=a;d.listener=c;if(a.addEventListener)Cb||(e=g),void 0===e&&(e=!1),a.addEventListener(b.toString(),d,e);else if(a.attachEvent)a.attachEvent(Vb(b.toString()),d);else if(a.addListener&&a.removeListener)a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");Ob++;return c}
function Ub(){var a=Wb,b=Ab?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b}function Qb(a,b,c,d,e){if(Array.isArray(b)){for(var f=0;f<b.length;f++)Qb(a,b[f],c,d,e);return null}c=Rb(c);return a&&a[Gb]?a.g.add(String(b),c,!0,ma(d)?!!d.capture:!!d,e):Sb(a,b,c,!0,d,e)}
function Xb(a){if("number"!==typeof a&&a&&!a.m){var b=a.src;if(b&&b[Gb])Lb(b.g,a);else{var c=a.type,d=a.g;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(Vb(c),d):b.addListener&&b.removeListener&&b.removeListener(d);Ob--;(c=Tb(b))?(Lb(c,a),0==c.h&&(c.src=null,b[Mb]=null)):Jb(a)}}}function Vb(a){return a in Nb?Nb[a]:Nb[a]="on"+a}
function Yb(a,b,c,d){var e=!0;if(a=Tb(a))if(b=a.g[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var f=b[a];f&&f.capture==c&&!f.m&&(f=Zb(f,d),e=e&&!1!==f)}return e}function Zb(a,b){var c=a.listener,d=a.h||a.src;a.s&&Xb(a);return c.call(d,b)}
function Wb(a,b){if(a.m)return!0;if(!Ab){if(!b)a:{b=["window","event"];for(var c=l,d=0;d<b.length;d++)if(c=c[b[d]],null==c){b=null;break a}b=c}d=b;b=new V(d,this);c=!0;if(!(0>d.keyCode||void 0!=d.returnValue)){a:{var e=!1;if(0==d.keyCode)try{d.keyCode=-1;break a}catch(g){e=!0}if(e||void 0==d.returnValue)d.returnValue=!0}d=[];for(e=b.g;e;e=e.parentNode)d.push(e);a=a.type;for(e=d.length-1;0<=e;e--){b.g=d[e];var f=Yb(d[e],a,!0,b);c=c&&f}for(e=0;e<d.length;e++)b.g=d[e],f=Yb(d[e],a,!1,b),c=c&&f}return c}return Zb(a,
new V(b,this))}function Tb(a){a=a[Mb];return a instanceof Kb?a:null}var $b="__closure_events_fn_"+(1E9*Math.random()>>>0);function Rb(a){if("function"===typeof a)return a;a[$b]||(a[$b]=function(b){return a.handleEvent(b)});return a[$b]};function W(a){U.call(this);this.l=a;this.i={}}oa(W,U);var ac=[];function bc(a){ra(a.i,function(b,c){this.i.hasOwnProperty(c)&&Xb(b)},a);a.i={}}W.prototype.j=function(){W.o.j.call(this);bc(this)};W.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented");};function cc(a){U.call(this);this.i=a||document.body;this.l=new W(this);a=na(yb,this.l);this.h?a():(this.g||(this.g=[]),this.g.push(a));a=this.l;var b=this.i,c=this.u,d="click";Array.isArray(d)||(d&&(ac[0]=d.toString()),d=ac);for(var e=0;e<d.length;e++){var f=Pb(b,d[e],c||a.handleEvent,!1,a.l||a);if(!f)break;a.i[f.key]=f}}h(cc,U);
cc.prototype.u=function(a){if(!(!(zb?0==a.i.button:"click"==a.type||a.i.button&Fb[0])||Sa&&a.ctrlKey||a.defaultPrevented))for(var b=a.target;b&&b!=this.i;){if(b.tagName&&"a"==b.tagName.toLowerCase()){var c=b.getAttribute("href")||b.getAttributeNS("http://www.w3.org/1999/xlink","href"),d=c;try{var e=rb(c)[3];var f;if(f="www.google.com"===pb(e,!0)){var g=rb(c)[5];f="/url"===pb(g,!0)}if(f){var k=sb(c,"q");d=k?k:sb(c,"url")}}catch(C){a:{var t=C;if(null!=t){var n=t.A;if(null!=n){C=n;break a}}if(t instanceof
TypeError){var R=n=new kb;R.l=B(t);hb(R);n.g="__noinit__";n.g=t;n.i(new TypeError(n));t=n}else R=n=new E,R.l=B(t),hb(R),n.g="__noinit__",n.g=t,n.i(Error(n)),t=n;C=t}if(!(C instanceof ib))throw C.h;}d=null!=d?d:"";if(c!=d){e=void 0;b={target:"_blank",noreferrer:!0};c=window;d instanceof q?f=d:(f="undefined"!=typeof d.href?d.href:String(d),f instanceof q||(f="object"==typeof f&&f.h?f.g():String(f),Fa.test(f)?f=new q(f,r):(f=String(f),f=f.replace(/(%0A|%0D)/g,""),f=(g=f.match(Ea))&&Da.test(g[1])?new q(f,
r):null)),f=f||Ha);d=b.target||d.target;g=[];for(e in b)switch(e){case "width":case "height":case "top":case "left":g.push(e+"="+b[e]);break;case "target":case "noopener":case "noreferrer":break;default:g.push(e+"="+(b[e]?1:0))}e=g.join(",");if((w("iPhone")&&!w("iPod")&&!w("iPad")||w("iPad")||w("iPod"))&&c.navigator&&c.navigator.standalone&&d&&"_self"!=d)e="A",g=document,e=String(e),"application/xhtml+xml"===g.contentType&&(e=e.toLowerCase()),g=e=g.createElement(e),f=f instanceof q?f:Ga(f),g.href=
u(f),e.setAttribute("target",d),b.noreferrer&&e.setAttribute("rel","noreferrer"),b=document.createEvent("MouseEvent"),b.initMouseEvent("click",!0,!0,c,1),e.dispatchEvent(b);else if(b.noreferrer){if(c=La("",c,d,e),b=u(f),c){Pa&&-1!=b.indexOf(";")&&(b="'"+b.replace(/'/g,"%27")+"'");c.opener=null;Ba.test(b)&&(-1!=b.indexOf("&")&&(b=b.replace(va,"&amp;")),-1!=b.indexOf("<")&&(b=b.replace(wa,"&lt;")),-1!=b.indexOf(">")&&(b=b.replace(xa,"&gt;")),-1!=b.indexOf('"')&&(b=b.replace(ya,"&quot;")),-1!=b.indexOf("'")&&
(b=b.replace(za,"&#39;")),-1!=b.indexOf("\x00")&&(b=b.replace(Aa,"&#0;")));b='<meta name="referrer" content="no-referrer"><meta http-equiv="refresh" content="0; url='+b+'">';if(void 0===m)if(d=null,(e=l.trustedTypes)&&e.createPolicy){try{d=e.createPolicy("goog#html",{createHTML:pa,createScript:pa,createScriptURL:pa})}catch(C){l.console&&l.console.error(C.message)}m=d}else m=d;b=(d=m)?d.createHTML(b):b;b=new x(b,null,Ka);(c=c.document)&&c.write&&(c.write(b instanceof x&&b.constructor===x?b.i:"type_error:SafeHtml"),
c.close())}}else(c=La(f,c,d,e))&&b.noopener&&(c.opener=null);a.h();break}}b=b.parentNode}};function dc(a){new cc(a)}var X=["DOCS_installLinkReferrerSanitizer"],Y=l;X[0]in Y||"undefined"==typeof Y.execScript||Y.execScript("var "+X[0]);for(var Z;X.length&&(Z=X.shift());)X.length||void 0===dc?Y[Z]&&Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=dc;}).call(this);
</script><script type="text/javascript" nonce="">DOCS_installLinkReferrerSanitizer();</script></body></html>